#ifndef SERIAL_PORT_H
#define SERIAL_PORT_H

#include <string>
#include <termios.h>  // 用于串口配置
#include <vector>

class serial_port
{
public:
    serial_port();
    ~serial_port();

    // 搜索可用的串口设备
    std::vector<std::string> search_available_ports();

    bool open_port(const std::string& port_name);  // 打开串口设备
    void close_port();   // 关闭串口设备
    bool configure_port(int baudrate, int databits, int stopbits, char parity, bool hw_ctrl);    // 设置串口参数
    int send_string_data(const std::string& data);    // 发送字符串数据
    int send_byte_data(unsigned char *data, int len);
    int recv_data_poll(unsigned char *buffer, size_t size);    // 接收数据
    bool is_open() const;    // 判断串口是否已打开

private:
    int serial_fd;         // 串口文件描述符
    struct termios tty;   // 串口配置
    bool is_port_opened;    // 串口状态
};

#endif


